package com.example.dw.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 活动实体类
 * @author system
 * @since 2024-01-01
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("activity")
public class Activity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 活动ID
     */
    @TableId(value = "activityid", type = IdType.AUTO)
    private Integer activityid;

    /**
     * 活动名称/标题
     */
    @TableField("activityName")
    private String activityName;

    /**
     * 活动地点（粗略）
     */
    @TableField("activityPlace")
    private String activityPlace;

    /**
     * 第一场时间
     */
    @TableField("activityTime1")
    private String activityTime1;

    /**
     * 封面图片
     */
    @TableField("activityAvatar")
    private String activityAvatar;

    /**
     * 活动价格
     */
    @TableField("activityPrice")
    private BigDecimal activityPrice;

    /**
     * 开始日期
     */
    @TableField("activityStartDate")
    private String activityStartDate;

    /**
     * 结束日期
     */
    @TableField("activityEndDate")
    private String activityEndDate;

    /**
     * 第二场时间
     */
    @TableField("activityTime2")
    private String activityTime2;

    /**
     * 活动类型（0是图文;1是视频）
     */
    @TableField("activityType")
    private Integer activityType;

    /**
     * 活动大类
     */
    @TableField("activityClassify")
    private String activityClassify;

    /**
     * 活动是否过期
     */
    @TableField("activityState")
    private Integer activityState;

    /**
     * 演出介绍
     */
    @TableField("activityContent")
    private String activityContent;

    /**
     * 演出团体
     */
    @TableField("activityTeam")
    private String activityTeam;

    /**
     * 观演说明
     */
    @TableField("activityDescribe")
    private String activityDescribe;

    /**
     * 注意事项
     */
    @TableField("activityAttention")
    private String activityAttention;

    /**
     * 详细地点
     */
    @TableField("activityAddress")
    private String activityAddress;

    /**
     * 是否售卖中
     */
    @TableField("activityBuyState")
    private String activityBuyState;

    /**
     * 小类（如舞蹈）
     */
    @TableField("activityLittleType")
    private String activityLittleType;

    /**
     * 表演时长
     */
    @TableField("activityPerformTime")
    private String activityPerformTime;

    /**
     * 评论数
     */
    @TableField("activityCommentCount")
    private Integer activityCommentCount;

    /**
     * 大类ID
     */
    @TableField("bigid")
    private Integer bigid;

    /**
     * 点击量
     */
    @TableField("activityClick")
    private Integer activityClick;

    /**
     * URL链接
     */
    @TableField("url")
    private String url;

    /**
     * 售卖开始时间
     */
    @TableField("shopStartTime")
    private String shopStartTime;

    /**
     * 售卖结束时间
     */
    @TableField("shopEndTime")
    private String shopEndTime;

    /**
     * 创建时间
     */
    @TableField("createdAt")
    private String createdAt;

    /**
     * 剩余票数
     */
    @TableField("remaining")
    private Integer remaining;

    /**
     * 用户表单字段
     */
    @TableField("userFormFields")
    private String userFormFields;

    /**
     * 客户图片URL
     */
    @TableField("customer_img_url")
    private String customerImgUrl;

    /**
     * 用户信息URL
     */
    @TableField("userInfoUrl")
    private String userInfoUrl;

    /**
     * 用户信息URL备注
     */
    @TableField("userInfoUrlremarks")
    private String userInfoUrlremarks;

    /**
     * 备注
     */
    @TableField("remarks")
    private String remarks;

    /**
     * 用户文件
     */
    @TableField("userFiles")
    private String userFiles;

    /**
     * 活动是否过期（0-未过期 1-已过期）
     */
    @TableField("expired")
    private Integer expired;

    /**
     * 活动场次列表（不在数据库中，用于关联查询）
     */
    @TableField(exist = false)
    private java.util.List<ActivitySession> activitySessions = new java.util.ArrayList<>();

    public void setActivitySessionList(List<ActivitySession> activitySessionList) {
        this.activitySessions = activitySessionList;
    }


    /**
     * 活动类型{bigid:1,bigName:"活动大类",littleid:1,littleName:"活动小类"}
     */
    @TableField(exist = false)
    private ActivityBigType bigType;
    




}